package eventManager;

public interface IEventManager 
{
	
	public boolean addListener(IEventListener listener, String eventName); //add Listener
	public boolean delListener(IEventListener listener, String eventName); //remove Listener
	
	//Immediately send event to relevant listeners
	public boolean trigger(AppEvent event);  //must accept an event that uses the IEventData interface
	
	//Add event to one of the queues.
	public boolean queueEvent(AppEvent event);
	
	//Remove event(s) from the queue
	public boolean abortEvent(AppEvent event, boolean allOfType);
	
	//Process all events in active queue, within some time limit (0 = no limit).
	public boolean procEvents(long maxMillis);
	
	//Is this a legal event type?
	public boolean validateEventType(String eventName);
}
